#include <libpub.h>

#define DELAY_10MS      10
#define DELAY_100MS     100
#define DELAY_1000MS    1000
#define DELAY_2000MS    2000

extern "C"{
void DA9030_Init_ADC();
void  StartCharging(void);
unsigned int BatteryGetVoltage();
unsigned char DA9030_Auto_GetTBAT();
unsigned char DA9030_Auto_GetICHARGE();
void DA9030_TurnOnVibrate();
void DA9030_TurnOffVibrate();
void DA9030_SetVibrateDuty(unsigned char duty);
void DA9030_SetVibrateFeq(unsigned char frequence);
void DA9030_SetVibrateMode(char mode);
void dump_da9030_regs();
void msleep(unsigned int ms);
}

//tCommandTbl Do_TestPMICcmdTbl[] = {
//    {Do_ADC_test,        "musicByMono",      ""},
//    {Do_IRQ_test,         "musicByStero",      ""},
//    {Do_GEDGET_test,     "musicByHeadSet",    ""},
//    CMD_NULL,               //DO NOT REMOVE
//};
//
//static tMenuTbl Do_TestCodecMenuTbl[] = {
// {'0', "Test 9030 ADC",    "testadc"},
// {'1', "Test 9030 IRQ",     "testirq"},
// {'2', "Test 9030 gadget",  "testother"},
// {    0, MENU_NULL},         //DO NOT REMOVE
//};

int _Do_Test_Charger(char *param)
{
    int i;
    unsigned char val;
    StartCharging();
    DA9030_Init_ADC();
    TOUT(0,1,printf("\n _Do_Test_Charger(%s):\n", param));
//    print_help();

//    Bo_ShowMenu(Do_TestCodecMenuTbl, Do_TestPMICcmdTbl, 1);

//    while(1) {
//        char c = Bo_GetChar();
//        Xo_SerialOutputByte(c);  /* echo */
//        printk("\n");
//        if (c == 'q' || c == 'Q')
//            break;
//
//    }
    DA9030_TurnOnVibrate();
    DA9030_SetVibrateDuty(3);
    DA9030_SetVibrateFeq(2);
    DA9030_SetVibrateMode(1);
    for (i =0; i<50; i++) {
//        BatteryGetVoltage();
//
//        val = DA9030_Auto_GetTBAT();
//        printk("DA9030_Auto_GetTBAT %x\n", val);
//        val = DA9030_Auto_GetICHARGE();
//        printk("DA9030_Auto_GetICHARGE %x\n", val);

        dump_da9030_regs();
        msleep(100);
    }
    DA9030_TurnOffVibrate();
////    Do_InitLcd();
////    Display_Logo();
//
//    int bright_val = 0;
//
//    if (*param) {//test backlight 100
//        param = Bo_ParseInteger(param, (unsigned long *) &bright_val);
//        TOUT(1, 1, printf("\n Light value = (%d):\n", bright_val));
//        BackLight_SetBrightness(0, bright_val);
//   }
//   else {//test backlight
//        Do_Test_Backlight_Auto();
//   }
    return 0;
}
